package object.package1;
class MyArrayTemplate<T> {
    //此时arr是T[]类型 T是啥类型？ 还不知道，得在后面实例化的时候才知道
    //由于T类型位置，不能直接new T[]
    private T[] arr=(T[]) new Object[10];

    public T get (int index){
        return arr[index];
    }
    public void set (int index, T value){
        arr[index]=value;
    }

}

public class Test3 {
    public static void main(String[] args) {
        //针对MyArrayTemplate的进行实例化
        //泛型参数类型T是Integer
        //针对arr来说，就只能存储Integer类型
        MyArrayTemplate<Integer> myArray = new MyArrayTemplate<Integer>();
        myArray.set(0, 10);
        System.out.println(myArray.get(0));

        //针对MyArrayTemplate的进行实例化
        //泛型参数类型T是String
        MyArrayTemplate<String> myArray2 = new MyArrayTemplate<String>();
        myArray2.set(0, "hello");
        System.out.println(myArray2.get(0));
        MyArrayTemplate arr= new MyArrayTemplate(); //不能实例化，因为缺少泛型参数类型

    }
}
